import { request } from './idnex'
import npropress from 'nprogress'
import store from '@/store'
request.interceptors.request.use((config) => {
    npropress.start()
    // 每次向后端发送请求时都会携带一个独一无二的临时id,用于校验身份,添加到购物车中的数据都会存储在当前临时id用户中
    let userTempId = localStorage.getItem('userTempId')
    config.headers.userTempId = userTempId
    config.headers.token = store.state.user.token
    return config
})
request.interceptors.response.use((response) => {
    npropress.done()
    if (response.data.code === 200) {
        //其中的data是后端返回的戴数据对象,会对当前请求进行判断返回不同的状态码与状态语句
        // 可以通过判断其状态码返回数据
        return response.data.data
    } else {
        // 不使用axios原生的code的原因是因为
        // 如果使用请求登录的情况,不管密码正确与否都会返回200的请求成功,所以需要根据后端返回的状态码进行判断
        // 如果出错就将一个失败的promise对象包裹错误类型返回出去
        return Promise.reject(response.data.message)
    }
})
export default request